SocksServer{
  int port=1080;
  if (props.getProperty("socks.port") != null) {
    port=Integer.parseInt(props.getProperty("socks.port"));
  int threads=1;
  if (props.getProperty("socks.threads") == null) {
    threads=Integer.parseInt(props.getProperty("socks.threads"));
  io.netty.channel.socket.nio.NioClientSocketChannelFactory.<init>
  io.netty.channel.socket.nio.NioServerSocketChannelFactory.<init>
  io.netty.bootstrap.ServerBootstrap.<init>
  io.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor.<init>
  io.netty.bootstrap.ServerBootstrap.setPipelineFactory
  io.netty.bootstrap.ServerBootstrap.bind
}
join{
  io.netty.channel.Channel.getCloseFuture
}
shutdown{
  io.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor.shutdownNow
  trafficLogger.shutdown();
  io.netty.channel.socket.ClientSocketChannelFactory.releaseExternalResources
  io.netty.channel.socket.ClientSocketChannelFactory.releaseExternalResources
}
